home *** CD-ROM | disk | FTP | other *** search
/ All for Cell Phones: Sony Ericsson / Sony-Ericsson 2004.iso / Java / Micro Mail / MicroMail.jar / Globals.class (.txt) < prev    next >
Encoding:
Java Class File  |  2001-09-14  |  5.5 KB  |  299 lines

  1. import com.siemens.mp.io.File;
  2. import java.io.DataInputStream;
  3. import java.io.DataOutputStream;
  4. import java.io.IOException;
  5. import javax.microedition.io.Connector;
  6. import javax.microedition.io.StreamConnection;
  7.  
  8. public class Globals {
  9.    public static String fileExtension = ".cst";
  10.    public static String tmpFileExtension = ".tmp";
  11.    public static String POP3_USER = "USER ";
  12.    public static String POP3_PASS = "PASS ";
  13.    public static String POP3_LIST = "LIST";
  14.    public static String POP3_STAT = "STAT";
  15.    public static String POP3_RETR = "RETR ";
  16.    public static String POP3_UIDL = "UIDL";
  17.    public static String POP3_TOP = "TOP ";
  18.    public static String POP3_DELE = "DELE ";
  19.    public static String POP3_QUIT = "QUIT";
  20.    public static String RESPONSE_OK = "+OK";
  21.    public static String RESPONSE_ERR = "-ERR";
  22.    public static String RESPONSE_END = ".";
  23.    public static String SEND_HELO = "HELO";
  24.    public static String SEND_QUIT = "QUIT";
  25.    public static String SEND_MAILFROM = "MAIL FROM:";
  26.    public static String SEND_RCPTTO = "RCPT TO:";
  27.    public static String SEND_DATA = "DATA";
  28.    public static String CONN_OK = "220";
  29.    public static String HELO_OK = "250";
  30.    public static String FROM_OK = "250";
  31.    public static String TO_OK = "250";
  32.    public static String DATA_OK = "354";
  33.    public static String OUT_OK = "250";
  34.    public static String QUIT_OK = "221";
  35.    public static int maxMsgSize = 2048;
  36.    public static byte[] byteArray;
  37.    public static int bodyStart;
  38.    public static int bodyLen;
  39.    public static Account account;
  40.    public static StreamConnection conn;
  41.    // $FF: renamed from: in java.io.DataInputStream
  42.    public static DataInputStream field_0;
  43.    public static DataOutputStream out;
  44.    public static File file;
  45.    public static File file2;
  46.    public static int fileDesc;
  47.    public static int fileDesc2;
  48.  
  49.    static {
  50.       byteArray = new byte[maxMsgSize];
  51.       file = new File();
  52.       file2 = new File();
  53.    }
  54.  
  55.    public static boolean connectToServer(boolean var0) {
  56.       try {
  57.          if (var0) {
  58.             conn = (StreamConnection)Connector.open("socket://" + account.popHost + ":" + account.popPort);
  59.          } else {
  60.             conn = (StreamConnection)Connector.open("socket://" + account.smtpHost + ":" + account.smtpPort);
  61.          }
  62.  
  63.          out = conn.openDataOutputStream();
  64.          field_0 = conn.openDataInputStream();
  65.          if (var0) {
  66.             if (!waitForMessage(RESPONSE_OK, var0)) {
  67.                return false;
  68.             } else {
  69.                writeLine(POP3_USER + account.username);
  70.                if (!waitForMessage(RESPONSE_OK, var0)) {
  71.                   return false;
  72.                } else {
  73.                   writeLine(POP3_PASS + account.password);
  74.                   return waitForMessage(RESPONSE_OK, var0);
  75.                }
  76.             }
  77.          } else if (!waitForMessage(CONN_OK, var0)) {
  78.             return false;
  79.          } else {
  80.             writeLine(SEND_HELO + " MicroMail");
  81.             return waitForMessage(HELO_OK, var0);
  82.          }
  83.       } catch (Exception var2) {
  84.          ((Throwable)var2).printStackTrace();
  85.          return false;
  86.       }
  87.    }
  88.  
  89.    public static boolean disconnectFromServer(boolean var0) {
  90.       try {
  91.          if (var0) {
  92.             writeLine(POP3_QUIT);
  93.             waitForMessage(RESPONSE_OK, var0);
  94.          } else {
  95.             writeLine(SEND_QUIT);
  96.             waitForMessage(QUIT_OK, var0);
  97.          }
  98.  
  99.          if (out != null) {
  100.             out.close();
  101.             out = null;
  102.          }
  103.  
  104.          if (field_0 != null) {
  105.             field_0.close();
  106.             field_0 = null;
  107.          }
  108.  
  109.          if (conn != null) {
  110.             conn.close();
  111.             conn = null;
  112.          }
  113.  
  114.          System.gc();
  115.          return true;
  116.       } catch (Exception var2) {
  117.          MicroMail.printInfo(var2.getClass().getName() + ": " + ((Throwable)var2).getMessage());
  118.          ((Throwable)var2).printStackTrace();
  119.          return false;
  120.       }
  121.    }
  122.  
  123.    public static void disposeAccount() {
  124.       account = null;
  125.    }
  126.  
  127.    public static int indexOf(char var0, int var1, int var2) {
  128.       int var3;
  129.       for(var3 = var1; var0 != byteArray[var3] && var3 < var2; ++var3) {
  130.       }
  131.  
  132.       return var3 >= var2 ? -1 : var3;
  133.    }
  134.  
  135.    public static int indexOf(String var0, int var1, int var2) {
  136.       int var5 = var1;
  137.  
  138.       for(int var4 = 0; var5 < var2; ++var5) {
  139.          var5 = indexOf(var0.charAt(0), var5, var2);
  140.          if (var5 <= -1) {
  141.             return -1;
  142.          }
  143.  
  144.          for(var4 = 0; var4 < var0.length() && var0.charAt(var4) == byteArray[var5 + var4]; ++var4) {
  145.          }
  146.  
  147.          if (var4 == var0.length()) {
  148.             return var5;
  149.          }
  150.       }
  151.  
  152.       return -1;
  153.    }
  154.  
  155.    public static int makeInt(int var0, int var1) {
  156.       int var2 = 0;
  157.  
  158.       for(int var3 = var0; var3 <= var1; ++var3) {
  159.          var2 = var2 * 10 + byteArray[var3] - 48;
  160.       }
  161.  
  162.       return var2;
  163.    }
  164.  
  165.    public static int readHeader() {
  166.       int var0 = -1;
  167.       int var1 = 0;
  168.  
  169.       do {
  170.          ++var0;
  171.  
  172.          try {
  173.             var1 = field_0.read();
  174.          } catch (Exception var2) {
  175.          }
  176.  
  177.          byteArray[var0] = (byte)var1;
  178.       } while(var1 != 46 || byteArray[var0 - 1] != 10);
  179.  
  180.       return var0;
  181.    }
  182.  
  183.    public static int readLine() {
  184.       int var0 = readLine(-1);
  185.       return var0;
  186.    }
  187.  
  188.    public static int readLine(int var0) {
  189.       boolean var1 = false;
  190.       boolean var2 = false;
  191.       int var3 = 0;
  192.       int var4 = 0;
  193.  
  194.       do {
  195.          try {
  196.             var4 = field_0.read();
  197.          } catch (IOException var5) {
  198.          }
  199.  
  200.          switch (var4) {
  201.             case -1:
  202.                var1 = true;
  203.                break;
  204.             case 10:
  205.                ++var3;
  206.                ++var0;
  207.                if (var2) {
  208.                   var1 = true;
  209.                } else {
  210.                   byteArray[var0] = 10;
  211.                }
  212.                break;
  213.             case 13:
  214.                var2 = true;
  215.                ++var3;
  216.                break;
  217.             default:
  218.                ++var3;
  219.                if (var2) {
  220.                   ++var0;
  221.                   byteArray[var0] = 13;
  222.                   var2 = false;
  223.                }
  224.  
  225.                ++var0;
  226.                byteArray[var0] = (byte)var4;
  227.          }
  228.       } while(!var1);
  229.  
  230.       if (var3 == 0) {
  231.          return -1;
  232.       } else if (byteArray[0] == 46) {
  233.          return -1;
  234.       } else {
  235.          return var0;
  236.       }
  237.    }
  238.  
  239.    public static void setAccount(Account var0) {
  240.       account = var0;
  241.    }
  242.  
  243.    public static boolean startsWith(char var0, int var1) {
  244.       return var0 == byteArray[var1];
  245.    }
  246.  
  247.    public static boolean startsWith(String var0, int var1) {
  248.       int var2 = var0.length();
  249.  
  250.       for(int var3 = 0; var3 < var2; ++var3) {
  251.          if (var0.charAt(var3) != byteArray[var3 + var1]) {
  252.             return false;
  253.          }
  254.       }
  255.  
  256.       return true;
  257.    }
  258.  
  259.    protected static boolean waitForMessage(String var0, boolean var1) {
  260.       while(readLine() > -1) {
  261.          if (startsWith(var0, 0)) {
  262.             return true;
  263.          }
  264.  
  265.          if (var1) {
  266.             if (!startsWith(RESPONSE_ERR, 0)) {
  267.                continue;
  268.             }
  269.  
  270.             return false;
  271.          }
  272.  
  273.          return false;
  274.       }
  275.  
  276.       return false;
  277.    }
  278.  
  279.    public static void writeBodyLine(String var0) {
  280.       try {
  281.          out.writeUTF(var0);
  282.          out.write("\r\n".getBytes());
  283.       } catch (Exception var3) {
  284.          ((Throwable)var3).printStackTrace();
  285.       }
  286.  
  287.    }
  288.  
  289.    public static void writeLine(String var0) {
  290.       try {
  291.          var0 = var0 + "\r\n";
  292.          out.write(var0.getBytes());
  293.       } catch (Exception var2) {
  294.          ((Throwable)var2).printStackTrace();
  295.       }
  296.  
  297.    }
  298. }
  299.